home *** CD-ROM | disk | FTP | other *** search
/ Game Cracker (Expanded Edition) / Game Cracker (Expanded Edition).iso / cracks / SV_TM2.ZIP / Twisted Metal 2.txt < prev   
Encoding:
Text File  |  1998-04-22  |  8.4 KB  |  186 lines

  1.  
  2. Free Information Xchange '98 presents:
  3.  
  4. Twisted Metal 2 - CD crack by Static Vengeance
  5.  
  6. Requirements:
  7. Hex editor and full game install
  8. W32Dasm if you wish to follow along
  9.  
  10.     Twisted Metal 2 (TM2) is a fair game to play but has a little bug that needs to be FiX'ed.  That
  11. bug is of course a CD check that occurs before you can play the game.  The pop up dialog box that asks
  12. for the CD is not a standard Win95 dialog box so there is no direct reference to the the string to search
  13. for.  However we can still do a text string search for the KERNEL32 call "GetDriveTypeA"  So get W32Dasm
  14. up and running and disassemble the file tm2.exe and follow along.  Searching for the GetDriveTypeA string
  15. will result in about 5 or 6 occurrances of that string.  However it's the last one we need to look at
  16. closely.  This is the one that deals with checking for the CD in your drive.  The routine looks like this:    
  17.  
  18. * Referenced by a CALL at Addresses:
  19. |:00463F5B   , :0046591B   , :00465A5B   , :004789DE   , :004A886F   <-- Called from 5 different locations
  20. |
  21. :004995D4 53                      push ebx
  22. :004995D5 51                      push ecx
  23. :004995D6 52                      push edx
  24. :004995D7 56                      push esi
  25. :004995D8 57                      push edi
  26. :004995D9 55                      push ebp
  27. :004995DA 81EC34010000            sub esp, 00000134
  28. :004995E0 89C7                    mov edi, eax
  29. :004995E2 BB41000000              mov ebx, 00000041
  30. :004995E7 31ED                    xor ebp, ebp
  31.  
  32. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  33. |:00499666(C)
  34. |
  35. :004995E9 53                      push ebx
  36.  
  37. * Possible StringData Ref from Data Obj ->"%c:\"                     <-- Commonly used in CD checks
  38.                                   |
  39. :004995EA 681B314E00              push 004E311B
  40. :004995EF 8D842438010000          lea eax, dword ptr [esp+00000138]
  41. :004995F6 50                      push eax
  42.  
  43. * Reference To: USER32.wsprintfA, Ord:0002h
  44.                                   |
  45. :004995F7 2EFF157006C900          Call dword ptr cs:[00C90670]
  46. :004995FE 83C40C                  add esp, 0000000C
  47. :00499601 8D842430010000          lea eax, dword ptr [esp+00000130]
  48. :00499608 50                      push eax
  49.  
  50. * Reference To: KERNEL32.GetDriveTypeA, Ord:000Ah                   <-- Text string that got us here
  51.                                   |
  52. :00499609 2EFF15E002C900          Call dword ptr cs:[00C902E0]
  53. :00499610 83F805                  cmp eax, 00000005                 <-- 05 is the value for CD-ROM drive
  54. :00499613 0F94C0                  sete al
  55. :00499616 25FF000000              and eax, 000000FF
  56. :0049961B 83F801                  cmp eax, 00000001
  57. :0049961E 7542                    jne 00499662
  58. :00499620 57                      push edi
  59. :00499621 53                      push ebx
  60.  
  61. * Possible StringData Ref from Data Obj ->"%c:\%s"
  62.                                   |
  63. :00499622 6820314E00              push 004E3120
  64. :00499627 8D44240C                lea eax, dword ptr [esp+0C]
  65. :0049962B 50                      push eax
  66.  
  67. * Reference To: USER32.wsprintfA, Ord:0002h
  68.                                   |
  69. :0049962C 2EFF157006C900          Call dword ptr cs:[00C90670]
  70. :00499633 83C410                  add esp, 00000010
  71. :00499636 55                      push ebp
  72. :00499637 6880000010              push 10000080
  73. :0049963C 6A03                    push 00000003
  74. :0049963E 55                      push ebp
  75. :0049963F 6A01                    push 00000001
  76. :00499641 6800000080              push 80000000
  77. :00499646 8D442418                lea eax, dword ptr [esp+18]
  78. :0049964A 50                      push eax
  79.  
  80. * Reference To: KERNEL32.CreateFileA, Ord:0002h                    <-- Create a file on CD?
  81.                                   |
  82. :0049964B 2EFF15C002C900          Call dword ptr cs:[00C902C0]
  83. :00499652 89C6                    mov esi, eax
  84. :00499654 83F8FF                  cmp eax, FFFFFFFF                <-- FF = error, not able to create file
  85. :00499657 7511                    jne 0049966A
  86. :00499659 89AC242C010000          mov dword ptr [esp+0000012C], ebp
  87. :00499660 EB18                    jmp 0049967A
  88.  
  89. * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
  90. |:0049961E(C), :0049967D(C)
  91. |
  92. :00499662 43                      inc ebx
  93. :00499663 83FB5A                  cmp ebx, 0000005A               <-- Try 5Ah times
  94. :00499666 7E81                    jle 004995E9
  95. :00499668 EB1D                    jmp 00499687
  96.  
  97. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  98. |:00499657(C)
  99. |
  100. :0049966A 55                      push ebp
  101. :0049966B 50                      push eax
  102.  
  103. * Reference To: KERNEL32.GetFileSize, Ord:000Ch
  104.                                   |
  105. :0049966C 2EFF15E802C900          Call dword ptr cs:[00C902E8]
  106. :00499673 8984242C010000          mov dword ptr [esp+0000012C], eax
  107.  
  108. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  109. |:00499660(U)
  110. |
  111. :0049967A 83FEFF                  cmp esi, FFFFFFFF
  112. :0049967D 74E3                    je 00499662
  113. :0049967F 56                      push esi
  114.  
  115. * Reference To: KERNEL32.CloseHandle, Ord:0001h
  116.                                   |
  117. :00499680 2EFF15BC02C900          Call dword ptr cs:[00C902BC]
  118.  
  119. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  120. |:00499668(U)
  121. |
  122. :00499687 83FB5A                  cmp ebx, 0000005A
  123. :0049968A 7E05                    jle 00499691
  124. :0049968C BBFFFFFFFF              mov ebx, FFFFFFFF                 <-- Set up for failed CD check
  125.  
  126. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  127. |:0049968A(C)
  128. |
  129. :00499691 89D8                    mov eax, ebx                      <-- Get the CD check "result" in eax
  130. :00499693 891DE4A5A300            mov dword ptr [00A3A5E4], ebx
  131. :00499699 81C434010000            add esp, 00000134
  132. :0049969F 5D                      pop ebp
  133. :004996A0 5F                      pop edi
  134. :004996A1 5E                      pop esi
  135. :004996A2 5A                      pop edx
  136. :004996A3 59                      pop ecx
  137. :004996A4 5B                      pop ebx
  138. :004996A5 C3                      ret
  139.  
  140.     The single most important instruction in the above routine is the mov ebx, FFFFFFFF this is the
  141. instruction that sets up for a failed CD check.  Changing this to mov ebx, 00000000 will result in a
  142. cracked version of Twisted Metal 2.  There are atleast 4 versions of TM2 out there including the the
  143. version on the CD.  To crack future versions search for the following string: 83 FB 5A 7E 05 BB FF FF FF
  144. FF 89 D8 changing the "FF FF FF FF" to "00 00 00 00"  You will need to search for the entire string as
  145. there are strings close to it that will pop up.  Then to kill the title avi, which is on the CD as are
  146. all the movies in the game.  Search for: 72 B8 31 C0 85 C0 75 79 BB 06 and change the "75" to "EB"  I
  147. had 3 versions to look at and found the above listed strings on all of them.  Each time the edit
  148. resulted in a cracked version even in the multi-player version the program will say you have a CD online.
  149. With the latest patch that now supports a VooDoo2 card I killed the first call the to CD check that
  150. prevents you from starting a game, although not needed I thought I'd through it in anyways.
  151.  
  152. To crack Twisted Metal 2 make the following edits:
  153.  
  154. Edit TM2.exe, this version is off the CD
  155. ==================================================
  156. Search for: 7E 05 BB FF FF FF FF at offset 564,538
  157. change to : 90 90 BB 00 00 00 00
  158.  
  159. Search for: 75 79 BB 06 00 00 00 at offset 424,104
  160. Chagne to : EB -- -- -- -- -- --
  161.  
  162. Edit TM2.exe, this version is a patch of the net
  163. ==================================================
  164. Search for: 7E 05 BB FF FF FF FF at offset 564,026
  165. change to : 90 90 BB 00 00 00 00
  166.  
  167. Search for: 75 79 BB 06 00 00 00 at offset 423,607
  168. Chagne to : EB -- -- -- -- -- --
  169.  
  170. Edit TM2.exe, this is the latest patch off the net
  171. ==================================================
  172. Search for: E8 F1 0B 02 00 at offset 429,534
  173. Change to : B8 00 00 00 00
  174.  
  175. Search for: 7E 05 BB FF FF FF FF at offset 563,850
  176. change to : 90 90 BB 00 00 00 00
  177.  
  178. Search for: 75 79 BB 06 00 00 00 at offset 423,025
  179. Chagne to : EB -- -- -- -- -- --
  180.  
  181.     There you have it, Twisted Metal 2 has been FiX'ed.  Keep in mind that all movies (avi files) are
  182. still stored on the CD and will NOT be played.  Also these patches allows you to play multi-player games
  183. as though you have a CD in your CD-ROM drive.
  184.  
  185. Static Vengeance
  186.